package trial.bishi2022;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @创建人 MBY381
 * @创建时间 2022/4/21 18:00
 * @描述 暂无
 */
public class HonorCo {
    static boolean falseTag=false;
    public static void main(String[] args) {
        test2();
    }
    static class SJ{
        public SJ(int no,int way,int jam,int light,int rate){
            this.no=no;
            this.way=way;
            this.jam=jam;
            this.light=light;
            this.rate=rate;
        }
        public int no;
        public int rate;
        public int way;
        public int jam;
        public int light;
        public int time;
    }

    public static void test3(){
        Scanner sc=new Scanner(System.in);
        String str1=sc.nextLine();
        String[] way=str1.split(",");
        String str2=sc.nextLine();
        String[] jam=str2.split(",");
        String str3=sc.nextLine();
        String[] light=str3.split(",");
        String str4=sc.nextLine();
        String[] rate=str4.split(",");
        List<SJ> list=new ArrayList<>();
        for(int i=0;i<way.length;i++){
            SJ temp=new SJ(i+1,Integer.parseInt(way[i]),Integer.parseInt(jam[i]),Integer.parseInt(light[i]),Integer.parseInt(rate[i]));
            list.add(temp);
        }
        int min=Integer.MAX_VALUE;
        for (SJ sj:list) {
            sj.time=(sj.way-sj.jam)/10+(int)(sj.jam/2+sj.light*0.5*15);
            min=Math.min(sj.time,min);
        }
        int no=Integer.MAX_VALUE,maxRate=0;
        for (SJ sj:list) {
           if(sj.time<min+60){
               if(sj.rate>maxRate){
                   maxRate= sj.rate;
                   no=sj.no;
               }
           }else {
               continue;
           }
        }
        for (SJ sj:list
             ) {
            if(sj.no==no){
                System.out.println(no+","+sj.time);
            }
        }
    }
    public static void test2(){
        Scanner sc=new Scanner(System.in);
        String value=sc.next();
        int len=value.length();
        sc.close();
        long ans;
        if(value.charAt(0)=='0'){
            if(value.charAt(1)=='x'||value.charAt(1)=='X'){
                String value1=value.substring(2,len-1);
                ans=cal(16,value1);
                if(falseTag){
                    System.out.println("ERROR");
                    return;
                }else {
                    System.out.println(ans);
                }
            }else if(getValue(value.charAt(0))!=0){
                String value1=value.substring(1,len-1);
                ans=cal(8,value1);
            }else {
                System.out.println("ERROR");
                return;
            }
        }else if(getValue(value.charAt(0))!=0&&getValue(value.charAt(0))>0){
            if(value.contains("#")){
                int index1=0;
                while(index1<len&&value.charAt(index1)!='#'){
                    index1++;
                }
                int radix=Integer.parseInt(value.substring(0,index1));
                if (radix<0||radix==0||radix>64){
                    System.out.println("ERROR");
                    return;
                }else {
                    ans=cal(radix,value.substring(index1+1,len-1));
                    if(falseTag){
                        System.out.println("ERROR");
                        return;
                    }else {
                        System.out.println(ans);
                    }
                }
            }else {
                if(value.charAt(0)!=0){
                    System.out.println(Integer.parseInt(value));
                }else {
                    System.out.println("ERROR");
                }

            }

        }

    }
    public static long cal(int radix,String value){
        int len=value.length();
        long ans=0;
        for(int i=0;i<len-1;i++){
            int val=getValue(value.charAt(i));
            if(val>radix||val<0){
                falseTag=true;
                return 0;
            }
            ans=ans+getDi(radix,len-1-i)*val;
        }
        ans=ans+getValue(value.charAt(len-1));
        return ans;
    }

    public static long getDi(int radix,int sum){
        long ans=radix;
        for(int i=1;i<sum;i++){
            ans=ans*radix;
        }
        return ans;
    }

    public static int getValue(char c){
        if((int)c-(int)'a'>=0&&(int)c-(int)'a'<26){
            return (int)c-97+10+1;
        }else if((int)c-(int)'A'>=0&&(int)c-(int)'A'<26){
            return (int)c-65+36+1;
        }else if(c=='@'){
            return 63;
        }else if(c=='_'){
            return 64;
        }else {
            return Integer.parseInt(String.valueOf(c));
        }
    }




    public static void tets1(){
        Scanner sc=new Scanner(System.in);
        List<Integer> li=new ArrayList<>();
        String a=sc.nextLine();
        String[] value111=a.split(" ");
        for(int  i=0;i<value111.length;i++){
            li.add(Integer.parseInt(value111[i]));
        }
        sc.close();
        int size=li.size();
        if(size==1){
            System.out.println(1);
        }
        int tag=0,step=0;
        while (tag+li.get(tag)<size){
            int max=tag;
            int value=0;
            for(int i=tag;i<tag+li.get(tag);i++){
                if((li.get(i)+i)>value){
                    value=li.get(i)+i;
                    max=i;
                }
            }
            step++;
            tag=max;
        }
        if(tag+li.get(tag)>=li.size()-1){
            step++;
            System.out.println(step);
        }else {
            System.out.println(-1);
        }
    }
}
